Skip to main content

Full text of "Robert C. Fischer documents"

See other formats


PRO/FILE 2068 + OS-64 


THESE NOTES ARE INTENDED AS A SUPPLEMENT TO THE PROFILE MANUAL. 


I have rewritten PRO/FILE 2068 to operate with the ZEBRA 
OS-64 module to provide a 64 column by 15 line data-file and 
display. Portions of the BASIC program were changed and the 
machine code had to be moved (and changed) to accomodate the 
changes in the operating system. I 

There are only about 500 bytes left unused in ram. 


FILE SIZE: 


I have used 22760 bytes for d$ (maximum file size) because 
this rewrite was also intended for use with the АҺ) Microdrive 
(which makes a smaller file size practical) and, at this size, 
I can get 4 complete files on a 62 foot wafer. 

I like to SAVE a standard size file so that changes will not 
cause a new SAVE to over-write part of the following file on a 
wafer. ` 


ADDITIONS: 


I have added the following routines from the PRO/FILE manual 
{pps 97-107); 
. The keypress "tick" 

keypress non-auto-repeat 

lprint from edit (copy display) 

autosearch improvement 

auto-sort (by 32 chars) 

block purge. 


I have also added a routine to allow 2 files to be merged. 


CHANGES: 


The main menu has been completely rearranged and several new 
functions added. 

The data-entry/edit menu has been rearranged and all of the 
functions now appear on a single menu. Upper/lower case ana 
insert/over conditions now appear on the menu. The line and 
column positions of the cursor are also displayed an the menu 
along with the LPRINT format. 

"STOP" to exit the data-entry mode and "STEP" to exit the 
edit mode are displayed as a reminder. The program is supposed 
to differentiate between them so BUT BE CAREFUL. I have 
experiencec random problems using STOP from edit. 

Different key-click sounds are provided for data-entry and 
cantral functions. 


-[ 1i l- 


LINE CHANGES AND ADDITIONS: 


Many of the new line numbers and routines will not match the 
original program but they are still obvious enough that you can 
sort them out. These are the major changes. 


Lines 20 - 118: main menu £ select 
Lines 1050 — 2000: data review menu 
Lines 5004 - 5018: data enter/edit menu 
Lines 5500 - 5510: data "LOAD" 
Lines 5600 - 5630: data "SAVE" 
Lines 5650 - 5680: "MERGE" two files 
Lines 7200 - 7240: "LPRINT" 
Line 9800: "CHANGE FILENAME" 
Line 9994: CLEAR 62627 and LOAD mc. 
Line 9995: DIM (22760) and certain standard values are put into 
š variables to save ram space. 
Line 9996: Housekeeping variables are initialized including the 
blank lines and "zzz"s that are necessary for 
sorting and printing operations. GOSUB 5620 is to 
insert the "SEARCH IS COMPLETES" message in the 
first 20 bytes of d$ (this is also used by LOAD. 
Line 9997: РОКЕ 24201,0 (A&J drive O) | 
POKE 65510,0 (turn off line feed, 05—64) 
POKE 65523,185 (select A&J interface, OS-64) 
POKE 65525,72 (LPRINT # of chars per line, 
plus # of chars in margin, OS-64 
RANDOMIZE USR 15623 (initialize # of chars, OS-64) 
Line 9998: initialize у% % f$, start (GO TO 1) 
Line 9999: SAVE & VERIFY for backup 


You may need to make some changes in Line 9997 to match your 
OS-64 (they’r not all the same), your interface, and your 
printer. 


MACHINE CODE: 


The PRO FILE MC now starts at 62628 (down 861 bytes) because 
the operating system is moved around for the 64 column mode and 
portions of it now occupy the top of ram. 

You will need HOT-Z, or some other assembler /disassembler 
that will allow you to relocate blocks of code. Otherwise you 
will have to go thru the МС and. change all of the GOTOs & JPs by 
hand. 

It was only necessary to change 3 bytes to accomodate the 64 
column mode. Addresses are the NEW locations. 


F502 = 40 (40 hex = 64 spaces) 
F463 = 40 (set count to 64) 
F4c4 = 41 (# of columns + 1) 


=p 273» 


"SAVE" and "LOAD": 


Both SAVE and LOAD will automatically put the computer in 
CAPS mode (POKE 23658,8). 


All data SAVE/LOAD operations are set up for А%Ч drive O 
because I always keep programs in drive 1 and files in drive O. 


The dimensioned data file (d$), as the first variable 
declared, is always located at (PEEK 23627+256tPEEK 23628). The 
first 6 bytes are header information, therefore the actual data 
starts at byte 7. Line 5630 creates variable "loc" which is the 
beginning of the data. loc=6+ (PEEK 23627+256*%PEEK 23628). 


"SAVE"; Line 5600; will use the "FILENAME” (f$) that appears оп 
the main menu. The routine will also ask for a file number. 

The message "SEARCH IS COMPLETE" will be removed from d$ and 
the value of variable "p" (total bytes used) will be inserted in 
the, now unused, 20 bytes of the header. | 

The program will automatically VERIFY. 


"LOAD"; Line 5500; will ask "HAS CURRENT FILE BEEN SAVED?” (as 
a safety check to prevent losing a file). "М" will return you 
to the main menu, "Y" will ask for the filename to be loaded. 
Variable "p" is extracted from the new d$ and the message 
"SEARCH IS COMPLETE?t" is replaced in the first 20 bytes. 


"LPRINT": 


Тһе OS-64 operating system does not support the 2040 
printer. However, it does provide а centronics driver for a 
large printer (interface selectable). Therefore, the driver 
code used in the manual is not necessary. 


The total number of characters per line are set in Line 
9997. However, since some printers do not have a "left margin” 
control - Line 7220 contains the necessary number of blank 
spaces to create a left margin. This means that line 9997 (POKE 
65525,72) is the number of characters to be printed PLUS the 
number of characters for the margin. 


If you want a blank space between each individual file 
printout, then change line 7225 to “NEXT x: LPRINT". 


EXAMPLE; I have indexed the club newsletter library. The 
first line is always the newsletter name and date with content 
notes on the other lines. І get rid of the LPRINT when I want 
a list of just the newsletter names & dates. I use the LPRINT 
when I want a printout of the entire file, with a space between 
each file. 


-L 3 J- 


COMBINING FILES (MERGE): 


PRO/FILE allows deleting blocks of files so that large files 
may be split. I have added a routine that allows two files to 
be combined. As written, it requires 2 microdrives. 

EDIT THE TWO FILES TO THE SIZE AND DATA THAT YOU WANT. 
Remembered that the total number of bytes in the two files MUST 
BE LESS than the maximum file size (22760 bytes minus 20, or 
11375 bytes each). 

Place the wafer containing the regular files in drive 0, 
place a formatted wafer (20-35 ft) in drive 1. 

When you select "MERGE", the program will prompt for the 
first filename. It will then LOAD that file (from drive 0), 
place the actual file size in variable "pi" (pi=p-20), place the 
filename іп "h$", and then SAVE tand VERIFY) the file tat its 
actual file size minus the 20 byte header) to drive i. See line 
5660, SAVE "ai,"+ f$ CODE tlac+20),pi. 

The program will then prompt for the next filename (to be 
LOADed from drive O). This will LOAD normally. 

The first file will then automatically be reLOADed (using 
the name іп "h$), AND using the new value in variable "р" to 
determine where the file should go in d$ so that it is 
immediately behind the resident file. Line 5680, LOAD “a"+h$ 
CODE (loc*p*1) 

The value in variable "pi" is then added to the value in 
variable "p" to give the size of the combined file. 

It is a simple matter to rewrite tbe program if you only 
have one microdrive. You will need to put pauses (and reminder 
messages) in to allow time to swap wafers. 


WARNING: It has been my experience that no two microdrives 
run at the same speed. Therefore, if you have saved several 
files using the slower drive and then over-write one of those 
files using the faster drive, it will also over-write the 
beginning of the following file. 


-E 4 l- 


- 0001. "КЕМ %Ж FRO/64 xt MODIFIED OCT, 1987 BY FRANK HOLLAND 


0005 LET a=to: 
LET x$z"" 


0004 RANDOMIZE p: 
POKE VAL "63174", PEEK VAL "23670": 
FOKE VAL "63175", FEEK VAL "23671": 
RANDOMIZE USR VAL "63407" 


0005 LET y=to: 
DIM еФ(%15, t64): 
CLS 


OQS If PEEK VAL "62750" = to 
AND y$ <> "D" 
AND y$ <> " STEP " 
THEN GO SUB VAL "7300" 


0010 IF у% = "D" 
OR y$ = " STEP " 
THEN GO TO t119 


0020 CLS: 
PRINT AT ti, t15; "XXXXXX* PRO/FILE 2068 + OS-64 XXxxxxx" 


0040 PRINT AT t3, t3; "FILE : "3 #% 
"FREE : "3 LEN d$ - p; "bytes"? 
TAB t3; "ORDER : "; g 
"FORMAT: "; as 


ОО50 PRINT АТ VAL "7", +10; "XX» LIST ALL FILES"? 
TAB t10; "<E>nter NEW FILE"? 
TAB %10; "<Stave FILES (drive O)"* 
TAB t10; "<L>cad FILES (drive О)" 
TAB tiO; "<M>erge FILES"? 
TAB +10; "<A>utosearch (& lprint)"' 
TAB t10; "<Feormat LPRINT"? 
TAB t10; "«C?hange FILENAME (7 chars.)"" 
TAB tiO; "<P>urge ALL FILES" 


0051 РКІМТ AT VAL "18", t2: "SEARCH COMMAND\# (line 1-9) to sort files."* 
ТАВ t2; "SEARCH COMMAND\D to delete series of files." 
TAB t2; "Separate multi-word command words with token ""AND""," 


0055 PLOT to, to: 
DRAW +255, +0: 
DRAW tO, VAL "175": 
DRAW -t255, to: 
DRAW tO, VAL "-175" 


0100 РОКЕ VAL "23658", t8: 
INPUT "SEARCH COMMAND? "; x$ 


0101 IF x$ = "E" 
THEN GO TO VAL "5000" 


2 IF x$ = "S" 
THEN GO SUB VAL "5600": 
GO TO ti 
5 IF x$ = "L" 
THEN GO SUB VAL "5500"; 
GO TO ti 
4 IF x$ = "A" 
THEN GO TO VAL "5200" 
5 IF x$ = "F" 
THEN GO SUB VAL "6500": 
GO TO t20 
ad 
зе IF w$ = "C" 
THEN GO TO VAL "9800" 
37 IF x$ = "P" 
THEN GO TO VAL "9650" 
28 IF x$ = "M" 
THEN GO SUB VAL "S650": 
GO TO ti 
15 IF x$ = "" 
THEN GO TO ti 
16 IF x$(LEN x$) = " AND " 
OR LEN x$ > t64 
THEN GO TO %10 
18 CLS 
19 LET x$ = x$: 
LET x$ = x$ 
20 RAMDOMIZE USR VAL "63179" 
30 LET j$ = CHR$ PEEK VAL "23670" 
40 IF a = tO 
THEN IF CODE j$ > VAL "48" 
AND CODE j$ < VAL "S8" 
THEN LET s = VAL j$: 
LET a = ti: 
LET y = tO: 
LET y$ = " STEP ": 
GO SUB VAL "7300": 
LET p$ = b$: 
LET q$ = 5% 
50 LET b = USR VAL "63240" 


-£ 6 J= 


0206 


1000 


1049 


1050 


1055 


1056 


1060 


1070 


1075 


‘IF jẹ = "D" 


THEN LET a =ti: 
LET s =to: 
LET y$ = "D": 
LET y = to 


FRINT AT %0,%0;: 
DIM e$(ti5, t64): 
LET e$(t1) = "": 
IF USR VAL "62714" THEN 


IF e$(ti, TO t18) = d$(t2 TO t19) 
AND b <> p 
THEN CLS: 
GO TO VAL "150" 


IF a 
THEN GO TO VAL "7000" 


IF a 
THEN GO SUB VAL "7300": 
GO SUB VAL "7310": 
GO SUE VAL "7300" 


IF e$(ti, TO t18) <> d$(t2 TO t19) 
AND CODE j$ > t32 

THEN GO TO VAL "8500" + CODE j% 

GO SUB VAL "9830": ' 

PRINT AT %17,%0; "<М>аіп menu"; 
TAB t25; "iE»dit file"; 
TAB t45; "Forint file"? 
"ENTER? to continue"; 
TAB t25; "<A>dd new file"; 
TAB t45; "<F>ormat "°? 
"<Roestart same search"; 
TAB t25; "<р>е1еіе file"; 
TAB t45; " "3 a$ 


PRINT AT t20, ti; "Search is for:": 
TAB VAL "36"; "or enter new SEARCH COMMAND"? x$ 
FOKE VAL "23658", t8 


INPUT "OPTION? "; y$ 


IF y$ = nu 
AND b < p 
THEN CLS: 
GO TO VAL "i150" 
IF y$ = "M" 


THEN GO TO ti 


IF USR VAL "63407" THEN 
(this line is supposed to be this way, it is not an 


= Z ae 


error) 


1080 


1090 


1100 


1200 


1400 


5003 


5004 


5005 


IF FEEK VAL "63165" + t256 % PEEK VAL "63166" 
<> PEEK VAL "23627" + t256 * PEEK VAL "23628" + VAL 
AND (y$ = "D" OR y$ = "E") 
THEN GO TO VAL "4000" 


IF y$ = "Б" 
THEN CLS: 
LET x$ = x$ 
GO TO t119 + (a X VAL "5121") 


IF y$ = "P" 
THEN GO TO VAL "7205" 


IF y$ = "F" 
THEN GO SUB VAL "9830": 
GO SUB VAL "6500": 
LET y$ = "": 
GO TO VAL "1050" 


IF a$ = "A" 
THEN LET x$ = "і": 
GO TO VAL "5000" 


LET x$ = y$: 
GO TO VAL "115" 


GO TO VAL "1050" 


LET p = p - USR VAL "62779": 
IF y$ = "р" 
THEN LET y$ = CHR$ (CODE "D" X a): 
GO TO VAL "4" 


GO TO VAL "5002" 


CLS: 

DIM e$(ti15, +64) 

LET m = tO: 

LET z = VAL "25658": 
LET i = tO: 

LET c = to 


GO SUB VAL "9830" 


PRINT AT %17,%0; "ARROWS move cursor",b$” 
"SHIFT О Delete character", 
“SHIFT 1 Alternate Insert/Over" 


PRINT AT ti9,tO; "SHIFT 2 = CAPS LOCK", 
"SHIFT 3 = LINE DELETE"? 
"SHIFT 4 = LINE ERASE", 
"SHIFT SYMBOL SHIFT: Line insert"? 
"“STOF> to close file": 
IF ys = "E" 
OR y$ = "A" 


nen 


THEN PRINT AT VAL "21", TO; "<5ТЕР> to return from 


-t 8 1- 


ADD/EDIT" 


5007 


5008 


5өбо 


5010 


5015 


SC16 


5050 


5050 


'FRINT AT ti6, t5; "UPPER CASE": 


IF PEEK z = tO 
THEN FRINT AT tió, t5; "lower case" 


PRINT AT +16, 50; "INSERT OFF": 
IF i = ti 
THEN PRINT АТ tió, VAL 50; “INSERT ON " 


PRINT INVERSE ti; АТ 1, с; SCREENS (1,c)3 INVERSE tO; 


AT t17, t32; "L= "s 
TAB 353 1 + 1; 
TAB 40; "C= " 


TAB 45; c+ti 
ON ERR GO TO 5008 


IF INKEY$ = "" 
THEN GO TO 5010 


LET y = INKEYS 


IF y$ = " STEP " 
OR y$ = " STOP " 
THEN ON ERR RESET: 
CLS: 
GO TO 6000 
J F y$ = na 


THEN GO TO 5010 
BEEP .001, 50 


PRINT AT 1, с; SCREENS (1, c): 
IF CODE y$ « t16 
AND CODE y$ > t3 
THEN GO SUB 5100 + CODE y$: 
BEEP .005, 25: 
GO TO 5006 


IF i 
THEN LET еФ (1+1) = e$(l+1 TO c) + " " + esil+ti, 
FRINT AT 1, tO; e$(l+ti) 


PRINT AT 1,c; y$: 
LET e$(l+ti, c+ti) = y 


~ # 


LET c = (c*t1) X (c«6 
LET 1 = 1 + (c=to): 
LET 1 = 1 Ж (1«t15) 
GO TO 5008 


-E 9 J- 


c+ti TO 63): 


5104 


5106 


5107 


5108 


5109 


5110 


5111 


5115 


5114 


5117 


5130 


5200 


FOR x = 1 TO 13: 
LET e$(x+t1) с e$(x+t2): 
PRINT AT x, tO; e$six+ti): 
NEXT x: 
LET e$(t15) = 
PRINT e$(ti5S): 
RETURN 


LET e$f(l+ti),c+ti TO) = ""; 
PRINT AT 1,%0; e$(l+ti): 
RETURN 


РОКЕ г, (PEEK z-tO) X tB: 
FRINT AT 1,035 e$i(l+ti,c+ti): 
RETURN 


LET i = NOT i: 
FAUSE t5: 
RETURN 


LET c = c-(c^t0O0): 
RETURN 


LET c = c*(c& VAL "65"): 
RETURN 


LET 1 = 1+(VAL "149: 
RETURN 


LET 1 = 1-(1>+0): 
RETURN 


LET e$(l+ti) = е%(1441, TO c) + e$(l+ti, c+t2 TO t63) + 


PRINT AT 1, tO; e$(1+t1): 
GO TO VAL "5108" 


LET с = tO: 

LET 1 = 1 + tis 

LET 1 = 1 - (1>VAL 814%): 
RETURN 


FOR x = ti5 TO 1 + t2 STEP -ti: 
LET e$(x) = е%(х-%1): 
PRINT AT x - ti, tO; eS (x): 


NEXT x: 

LET e$(l+ti) = "": 

PRINT AT 1, tO: e$(l+ti): 
RETURN 


GO TO VAL "5004" 
RETURN 

GO SUB VAL "7300": 
LET a = ti: 


INPUT "PRINT OUT Y/N) "3 y$: 
LET y = y$ = "ү" 


=L 10 1- 


5220 


5510 


5111 


5600 


5610 


5620 


5630 


INPUT "SEARCH COMMAND? "3 x$: 


IF x$ = "" 
OR LEN x$ > VAL "63" 
THEN BEEF VAL ".S", %10: 
GO TO VAL "5210" 


LET 2% = О": 
INPUT "LINE NUMBER (0-15) "3 z$: 
IF 2% = w" 


THEN BEEF VAL ".5", %10: 
GO TO VAL "5220" 


ON ERR GO TO VAL "S220"; 
IF VAL z$ « tO 
OR VAL z$ > t15 
THEN GO TO VAL "5220" 


ON ERR RESET: 
LET s = VAL z$: 


CLS 
IF s <> tO 
THEN LET p$ = b$: 
LET q$ = g$ 
GO TO t119 
CLS: 


POKE VAL "23658", t8: 
INPUT "HAS CURRENT FILE BEEN SAVED? (Y/N) "; y$: 
IF y$ <> "Y" 

THEN GO TO ti 


INPUT "FILE NAME? "3 f$: 
GO SUB VAL "S630": 

LOAD "a" + f$ CODE loc: 
LET p = VAL d$ (ti TO t20) 


GO TO VAL "S6ZO" 


РОКЕ VAL "23658", t8: 

CLS: 

INFUT "SAVE AT FILE #7 "; n$: 
GO SUB VAL "S630": 

LET a$(ti TO t20) = STR p 


SAVE "a" + n$ + "," + f$ CODE loc, VAL "21760": 
VERIFY "a" + f$ CODE 

LET d$ (ti TO t20) = "X#SEARCH IS COMPLETEX": 
RETURN 


LET loc = (PEEK VAL "23627" + t256 Ж PEEK VAL "23628") + VAL 
RETURN 


=. 11 j- 


"с.і 


5650 CLS: 
PRINT "MERGE: file #1": 
GG SUB VAL "5510": 
LET pi p - 120: 
LET h$ f$ 


"on 


5660 POKE VAL "24201", ti: 
SAVE "Di," + f$ CODE (loc + %20), рі: 
VERIFY "a" + 4% CODE: 
FOKE VAL "24201", to 


2670 FRINT "MERGE: file #2": 
GO SUB VAL "5510" 


5680 РОКЕ VAL "24201", ti: 
LOAD "3" + h$ CODE (loc + p + t1): 
FOKE VAL "24201", +0: 
LET p =p + pi: 
RETURN 


6000 LET d$(p) = CHR$ (42 - а X 42): 


6010 FOR x = ti TO +15 
LET e$(x) = es (x) 
IF USR 62628 THEN 
NEXT x 


6020 LET p = USR 62669 
6030 60 TO VAL "4" - (y$ = " STOF ") + (a X (y$ = " STEP ")) 


6500 FRINT AT +18, t2; "ENTER DESIRED FORMAT:"; b$? 
TAB t2; "Туре ALL or line numbers (1-9) separated by ""/"n""* 
TAB t2; "Use ""O"" to print blank lines"; b$ 


6510 LET c$ ="": 
LET n = to: 
INFUT "FORMAT? "3 a$: 
LET a$ = a$ + "/': 
IF a$ (ti) = "/" 
THEN GO TO VAL "6510" 


6515 IF a$ = "ALL/" 
THEN FOR x = ti TO t15 
LET c$ = CHR$ x: 


RETURN 


6520 LET d ti: 
FOR x ti TO LEN a$ 
IF a$(x) < "7s" 
OR a$(x) > "9" 
THEN GO TO VAL "6510" 


= 12” J= 


7200 


7202 


IF x < LEN at 
THEN IF а(х TO x+t1) = "//" 
THEN GO TO VAL "6510 


IF a(x) = "/" 
THEN LET n = VAL a$(d TO x-t1): 
LET d = x + tls 
IF n < ti6 
THEN LET c$ = c + CHR$ n 
IF n > tiS 
THEN GO TO VAL "6510" 
NEXT x 
RETURN 
IF 5 = to 


THEN GO TO VAL "7202" 


IF b = р 
THEN GO TO VAL "7070" 


LET s$ = e$(s, TO tz2) 


IF s$ = p$ 
THEN GO TO VAL "7200" 


IF s$ > p$ i 
THEN IF s$ < q$ 
THEN LET q$ = 5% 


GO TO VAL "7230" 


IF p$ = g$ 
THEN GO TO VAL "1047" 
LET p$ = q$: 
LET q$ = g$: 
CLS 


LET x$ = x$: 
GO TO t119 


FOKE PEEK VAL "63165" + t256 * PEEK VAL "63166", tO 


IF y= to 
THEN GO TO VAL "1047" 


=L 13 3- 


7205 FOR x = ti TO LEN c$ 


7210 IF CODE с%(х) = to 
THEN LPRINT 
7220 IF CODE c$(x) 
AND e$(x) > b$ + b$ 
THEN LFRINT " " + "es (CODECS (х) ) 


7225 NEXT x 


7230 IF а 
AND b < p 

AND y$ <> "C" 

THEN CLS: 


GO ТО VAL "150" 


7240 GO TO VAL "1047" 


7300 LET v = PEEK VAL "62750": 


FOKE VAL "62750", VAL "215" - v: 
FOKE VAL "62736", VAL "215" - y; 
RETURN I 


7510 PRINT AT tO, %0;: 
LET e$(ti) = ""; 
IF USR VAL "62714" THEN 
(this line is supposed to be this way, it is not an error) 
7311 RETURN 
8548 GO TO ti 


8557 LET p = p - USR VAL "62779": 
GO TO VAL "6000" 


8567 GO TO ti 


8568 GO TO VAL "1060" 


9650 INPUT "ARE YOU SURE? (Y/N) "; x$ 
IF x$ = "y" 
OR x$ = "Y" 


THEN GO TO VAL "9995" 
9660 GO TO ti 


?800 INPUT "NEW FILENAME? "; f$: 
GO TO ti 


3830 PLOT tO, VAL "54"; 
DRAW t255, tO: 
PLOT tO, VAL "52": 
DRAW t255, to: 
FRINT АТ tió, VAL "22"; "xx OPTION MENU XX": 
RETURN 


-L 14 J- 


9996 


9997 


9998 


9999 


‘CLEAR VAL "62627": 
LOAD "@pro/64" CODE VAL "62628" 
CLEAR: 
DIM d$(VAL "22760")1 
LET tO = VAL "о" 
LET ti = VAL "i": 
LET t2'= VAL "2": 
LET t3 = VAL "3": 
LET t5 = VAL "5": 
LET t8 = VAL "8": 
LET +10 = VAL "10": 
LET «15 = VAL "iS": 
LET t16 = VAL "16": 
LET t17 = VAL "17": 
LET t19 = VAL "19": 
LET t20 = VAL "20": 
LET t25 = VAL "25": 
LET t32 = VAL "52": 
LET t45 = VAL "45": 
LET t64 = VAL "64": 
LET t119 = VAL "119": 
LET t255 = VAL "255": 
LET t256 = VAL "256" 
LET p = +20: 
GO SUB VAL "5620": 
LET a$ = "ALL": 
LET c$ = "n"; ' 
FOR x =ti ТО +15: 
LET c$ = c$ + CHR$ x: 
NEXT x: 
LET в -tO: 
LET b$ = " 
LET g$ = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" 
FOKE VAL "24201", to: 
РОКЕ VAL "65510", to: 
FOKE VAL "65523", VAL "185": 
FOKE VAL "65525", VAL "72": 
RANDOMIZE USR VAL "15623": 
INK tO: 
CLS 
LET y$ = "C": 
LET f$ = "FILENAME": 
GO TO ti 
CLEAR: 
SAVE "Ji,FRO/G4" LINE VAL "9994": 


SAVE "@2,pro/64" CODE VAL "62628, VAL "795": 


VERIFY "@PRO/64": 
VERIFY "apro/64" CODE 


-L 15 2-